package com.adgox.tiantianbiting.home.programDetail;

import com.adgox.tiantianbiting.base.BasePresenter;
import com.adgox.tiantianbiting.base.BaseView;
import com.adgox.tiantianbiting.bean.CommentBean;
import com.adgox.tiantianbiting.bean.PageBean;
import com.adgox.tiantianbiting.bean.ProgramChooseBean;
import com.adgox.tiantianbiting.bean.ProgramCostBean;
import com.adgox.tiantianbiting.bean.SubProgramBean;

import java.util.ArrayList;
import java.util.List;


/**
 * Created by tang on 2018/12/26.
 */

public class ProgramDetailContract {
    interface Presenter extends BasePresenter{
        //获取节目信息
        void getProgramInfo(int programId);

        //获取节目选集信息
        void getProgramChooseInfo(int programId,int startPoint,int maxPage);

        //获取对应集数后十集总价
        void getNext10Cost(int programId,int currentSeason);

        //添加历史记录
        void addHistory(String s);

        //添加收藏
        void addCollect(String s);

        //取消收藏
        void cancelCollect(String s);

        //全集购买
        void buyAll(double balance,int programId);

        //分集购买
        void buyEvery(int programId, ArrayList<Long> buySeasons);

        //获取评论信息
        void getComment(int programId,int startPoint,int maxPage);

        //获取一级评论
        void getSubComment(int discussId);

        //发送评论
        void sendComment(String s);
    }

    interface View extends BaseView<Presenter>{
        void onSetProgramInfo(SubProgramBean bean);
        void onGetProgramInfoFailed(String msg);

        void onSetProgramChooseInfo(PageBean<ProgramChooseBean> list);
        void onGetProgramChooseInfoFailed(String msg);

        void onSetNext10Cost(ProgramCostBean bean);
        void onGetNext10CostFailed(String msg);

        void onAddCollectSuccess();
        void onAddCollectFailed(String msg);

        void onCancelCollectSuccess();
        void onCancelCollectFailed(String msg);

        void onBuyAllSuccess();
        void onBuyAllFailed(String msg);

        void onBuyEverySuccess();
        void onBuyEveryFailed(String msg);

        void onSetComment(PageBean<CommentBean> datas);
        void onGetCommentFailed(String msg);

        void onSetSubComment(List<CommentBean> datas);
        void onGetSubCommentFailed(String msg);

        void onSendCommentSuccess();
        void onSendCommentFailed(String msg);
    }
}
